import {defineStore} from "pinia"
import {ref} from "vue"

/**
 * DES 状态管理仓库
 */
export const useDesStore = defineStore(
  'desStore',
  () => {
    // 存储 DES 密钥
    const keys = ref<{[k: string]: string}>({})
    /**
     * 获取 DES 密钥<br/>
     * 在获取完 DES 密钥之后，将其从 store 中删除
     *
     * @param k 存储密钥时使用的键(加密后的 DES 密钥)
     */
    const getKey = (k: string) => {
      let key = keys.value[k]
      Reflect.deleteProperty(keys.value, k)
      return key
    }
    /**
     * 保存 DES 密钥
     *
     * @param k 存储密钥使用的键(加密后的 DES 密钥)
     * @param v DES 密钥
     */
    const saveKey = (k: string, v: string) => {
      keys.value[k] = v
    }

    return {
      keys,
      getKey,
      saveKey
    }
  }
)
